package ${basePackage}.${servicePackage};

import ${basePackage}.${entityPackage}.${className};
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * ${tableComment} Service接口
 *
 * @author ${author}
 * @date ${date}
 */
public interface I${className}Service extends IService<${className}> {
    /**
     * 查询（分页）
     * @author ${author}
     * @date ${date}
     * @param request QueryRequest
     * @param ${className?uncap_first} ${className?uncap_first}
     * @return IPage<${className}>
     */
    IPage<${className}> find${className}Page(QueryRequest request, ${className} ${className?uncap_first});

    /**
     * 查询（所有）
     * @author ${author}
     * @date ${date}
     * @param ${className?uncap_first} ${className?uncap_first}
     * @return List<${className}>
     */
    List<${className}> find${className}List(${className} ${className?uncap_first});

    /**
    * 根据ID查询
    * @author ${author}
    * @date ${date}
    * @param id
    * @return ${className}
    */
    ${className} find${className}ById(String id);

    /**
     * 新增
     * @author ${author}
     * @date ${date}
     * @param ${className?uncap_first} ${className?uncap_first}
     */
    boolean create${className}(${className} ${className?uncap_first});

    /**
     * 修改
     * @author ${author}
     * @date ${date}
     * @param ${className?uncap_first} ${className?uncap_first}
     */
    boolean update${className}(${className} ${className?uncap_first});

    /**
     * 逻辑删除
     * @author ${author}
     * @date ${date}
     * @param ${className?uncap_first} ${className?uncap_first}
     * @param ${className?uncap_first}Ids ${className?uncap_first}Ids
     */
    boolean delete${className}(${className} ${className?uncap_first},String ${className?uncap_first}Ids);

    /**
    * 物理删除
    * @author ${author}
    * @date ${date}
    * @param ${className?uncap_first}Ids ${className?uncap_first}Ids
    */
    boolean physicallyDelete${className}(String ${className?uncap_first}Ids);
}
